package day20170411.homework.student.dao;

import day20170411.homework.student.entity.StudentEntity;

public class StudentDao {
	
	/**
	 * 这个班中有几个女生  几个男的？
	 * @param stuArrays	需要查找的数组
	 * @return			返回结果
	 */
	public StudentEntity[] findAllGender(StudentEntity[] stuArrays){
		//统计有多少个人不合格
		int count = 0;
		
		//统计男士变量
		int man = 0;
		//统计女士变量
		//int woman = 0;
		
		for(int index=0; index<stuArrays.length; index++){
			//防止空指针
			if(stuArrays[index] != null){
				//可以写成一行，但是不方便调试
				//StudentEntity student = stuArrays[index];
				//char score = student.getSex();
				//判断成绩不合格的人
				if(man == '男'){
					man++;
				}else{
					//woman++;;
				}
			}
		}
		
		//定义一个新的数组拿来存放不合格的人
		StudentEntity[] newArrays = new StudentEntity[count];
		
		for(int index=0; index<stuArrays.length; index++){
			//防止空指针
			if(stuArrays[index] != null){
				//可以写成一行，但是不方便调试
				//StudentEntity stu = stuArrays[index];
				//double score = stu.getScore();
				//判断成绩不合格的人
				if(man == '男'){
					man++;
				}else{
					//woman++;;
				}
			}
		}
		//返回新的数组
		return newArrays;
	}
	
	/**
	 * 找出哪些人的个位数是6
	 * @param stuArrays	需要查询的数组
	 * @param number	需要查找的个位数
	 * @return			返回结果
	 */
	public StudentEntity[] findAllGe(StudentEntity[] stuArrays,int number){
		
		//统计有多少个人不合格
		int count = 0;
		for(int index=0; index<stuArrays.length; index++){
			//防止空指针
			if(stuArrays[index] != null){
				//可以写成一行，但是不方便调试
				StudentEntity student = stuArrays[index];
				double score = student.getScore();
				//判断成绩不合格的人
				if(score%10 == number){
					//找到不及格的人count++
					count++;
				}
			}
		}
		
		//定义一个新的数组拿来存放不合格的人
		StudentEntity[] newArrays = new StudentEntity[count];
		
		for(int index=0; index<stuArrays.length; index++){
			//防止空指针
			if(stuArrays[index] != null){
				//可以写成一行，但是不方便调试
				StudentEntity stu = stuArrays[index];
				double score = stu.getScore();
				//判断成绩不合格的人
				if(score%10 == number){
					//不合格的人装进新的数组
					newArrays[count-1] = stu;
					count--;
				}
			}
		}
		//返回新的数组
		return newArrays;
	}
	
	/**
	* 找出哪些人不及格
	 * @param stuArrays	查找的范围
	 * @return			返回的结果
	 */
	public StudentEntity[] findAllFail(StudentEntity[] stuArrays){
		
		//统计有多少个人不合格
		int count = 0;
		for(int index=0; index<stuArrays.length; index++){
			//防止空指针
			if(stuArrays[index] != null){
				//可以写成一行，但是不方便调试
				StudentEntity student = stuArrays[index];
				double score = student.getScore();
				//判断成绩不合格的人
				if(score < 60){
					//找到不及格的人count++
					count++;
				}
			}
		}
		
		//定义一个新的数组拿来存放不合格的人
		StudentEntity[] newArrays = new StudentEntity[count];
		
		for(int index=0; index<stuArrays.length; index++){
			//防止空指针
			if(stuArrays[index] != null){
				//可以写成一行，但是不方便调试
				StudentEntity stu = stuArrays[index];
				double score = stu.getScore();
				//判断成绩不合格的人
				if(score < 60){
					//不合格的人装进新的数组
					newArrays[count-1] = stu;
					count--;
				}
			}
		}
		//返回新的数组
		return newArrays;
	}
}
